package cliente;

import janelas.Interface;
import dados.Dado;

import java.util.ArrayList;

public class Messenger extends Thread{

	Interface usuario;
	ClientSocket conexao;
	Dado entrada = new Dado(null);
	Dado saida = new Dado(null);
	static final String HOST = "192.168.6.215";
    
	public void carregar(){
		conexao = new ClientSocket(this);
		usuario = new Interface();
		fazerLogin();
	}

	public void fazerLogin(){
		saida.setTipo("conectar");
		Dado conectar = saida;
		
		conectar.serLogin(usuario.perguntarLogin());
		conectar.setSenha(usuario.perguntarSenha());
		
		conexao.enviar(conectar);
		conectar = conexao.receber();
		usuario.mostrarMensagem(conectar.getMensagem());

		conectar = null;
	}
	
	public void falar(ArrayList<String> destino){
		saida.setTipo("mensagem");
		Dado mensagem = saida;
        
		while(true){
        	mensagem.setMensagem(usuario.perguntarMensagem());
        	mensagem.setDestino(destino);
            
			conexao.enviar(mensagem);
        }
    }

    public String escutar(){	
    	while (true){
    		entrada = conexao.receber();

            if (entrada == null){
                 usuario.erro("Conexão caiu");
                 System.exit(0);
            }
            usuario.mostrarMensagem(entrada.getMensagem());
            usuario.mostrarMensagem("Mensagem -> ");
         }
    }
    
    public void excecao(String erro){
    	usuario.erro(erro);
    }
    
    public void run(){
    	escutar();
    }
}
